重新定义软件架构的三个新兴技术
关注公众号并添加到“星标⭐”,防止错过消息
后台回复【资料包】获取学习资料
技术是一个不断发展的领域,虽然底层技术不会发生太大变化,但简单的组合创新就可能会重新定义软件系统架构和公司产品。
eBPF:重新定义网络、安全和可观察性工具
eBPF 是一项起源于 Linux 内核的革命性技术,它可以在特权上下文(例如操作系统内核)中运行沙盒程序(来源:ebpf.io)
eBPF(扩展伯克利包过滤器)是在 Linux 内核级别提供可编程性的抽象层,无需重新构建内核或加载任何模块。这不仅为应用程序开发人员,而且为安全、可观察性和网络产品的产品开发人员提供了大量机会。可观察性解决方案现在可以在节点级别进行检测,而不是在 Docker 容器级别进行检测,从而提高性能和洞察力。安全产品可以通过 L3-L7 级别的可操作性来实现具有更大控制力和更低资源开销的细粒度安全性。Cilium 的新Tetragon组件支持强大的实时、基于 eBPF 的运行时安全。
像服务网格这样的网络和基础设施解决方案已经开始应用基于 eBPF 的解决方案(例如Cilium)来避免 sidecar 的开销。
Istio 社区发布了一份白皮书,开始使用 eBPF 加速服务网格。Linkerd 和 eBPF 也可以按照本白皮书中的建议共存,其中基于 Cilium 的策略在 L3-L4 网络级别运行,Linkerd 在 L7 网络级别运行。BumbleBee是开始进行 eBPF 开发的绝佳工具。
虽然 eBPF 提供了速度和性能、沙盒安全性、统一跟踪、内核级别的可编程性等方面的巨大优势,但它更适合底层软件产品开发人员。
WebAssembly:重新定义 Web 应用程序开发
它由 Mozilla 于 2017 年发布,已被 W3C 接受为标准,现在得到 Mozilla、Microsoft、Google、Apple、Fastly、Intel 和 Red Hat 的支持。
WebAssembly(缩写为Wasm)是基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部署客户端和服务器应用程序。(由webassembly.org定义)
所有主流浏览器都支持WebAssembly(缩写为 Wasm),支持 40 多种编程语言作为编译目标。通过浏览器中的小型 VM 支持,您可以使用 JavaScript 运行 Wasm 二进制代码(以支持的语言编写)。这为编写近乎原生、高性能、高效的 Web 应用程序开辟了广泛的可能性。请注意,Wasm 不是 JavaScript 的替代品。
虽然 C、C++、Rust 和 Golang 是生产级 WebAssembly 的最佳支持,但其他语言也已经开始成熟。
Emscripten是一个完整的 WebAssembly 编译器工具链,使用 LLVM,特别关注速度、大小和 Web 平台。不用担心,因为您可以使用特定于语言的抽象/工具来处理生成。
对于 Python,PyScript已在PyCon 2022中宣布支持 WebAssembly。
对于 Java,GraalVM、Wasmer、JWebAssembly和TeaVM已经开始为 WebAssembly 提供支持。
以下是构建 WebAssembly 程序的参考开发步骤集:
Rust:重新定义系统编程
Rust 基金会成立于 2020 年,得到了 AWS、谷歌、华为、微软和 Mozilla 等公司的支持。作为 Stack Overflow 开发人员调查的一部分,Rust 连续第六年成为开发人员最喜爱的语言。
Rust 正在成为系统编程的首选语言,主要是因为低级内存管理、更高的性能、安全和并发优势。
AWS 已将其声明为系统编程的首选语言,并被用于Amazon Simple Storage Service (Amazon S3)、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon CloudFront等。
Rust for WebAssembly ( wasm-pack ) 支持可用于利用 Rust 构建快节奏的 Web 应用程序,尽管它是一个相对较新的领域。
虽然 Rust 的 Web 开发仍在成熟,但有多个Web 框架可用,例如Rocket、Actix、Gotham等(参见下图或单击此处阅读有关 Rust 中 Web 框架的更多信息)。
虽然在系统编程和工具开发(例如 AWS CLI、网络工具等)方面,Rust 是最具竞争力的编程语言之一,但它对 Web 开发(例如 REST API)的适用性仍在不断发展,其他语言(Java、 Python、Go 等)更适合它。
总而言之,虽然不同领域有各种新兴技术——这三种技术在软件架构会议、技术博客、设计讨论等中都位居榜首。它们将重塑应用程序架构的未来发展路线,并将帮助为不同的业务领域构建更快、安全、可扩展、灵活、高度可用和创新的产品。
再次感谢社区在此过程中在生产中部署存储的所有大力支持。
出处:
https://vedcraft.com/architecture/3-emerging-technologies-redefining-application-architecture/
译者:云原生技术爱好者社区
- END -
推荐阅读
Kubernetes 1.25 中的重大更改和删除Harbor 对接 MinIO 和 NFS ,详细教程
7 张图解 CrashLoopBackOff,如何发现问题并解决它?Containerd ctr、crictl、nerdctl 客户端命令介绍与实战操作12 图入门高性能分布式对象存储 MinIO
32 张配图详解 K8S 1.24 高可用部署,保姆级详细版!
Kubernetes 1.25 正式发布,所有变化都在这儿了
17 张图实战 + 理清 K8S 网络排错思路,硬核!16 张图硬核讲解 Kubernetes 网络模型K8S 的 TCP 数据包流量可视化超详细分布式对象存储 MinIO 实战教程